﻿using System;
using System.Collections.Generic;
using SharpSqlAnalyzer.nodes.hive;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x02000275 RID: 629
	public class TAlterIndexSqlNode : TParseTreeNode
	{
		// Token: 0x17000366 RID: 870
		// (get) Token: 0x060013B6 RID: 5046 RVA: 0x003241B8 File Offset: 0x003223B8
		// (set) Token: 0x060013B7 RID: 5047 RVA: 0x003241C0 File Offset: 0x003223C0
		public virtual TObjectName OnIndexName
		{
			get
			{
				return this._onIndexName;
			}
			set
			{
				this._onIndexName = value;
			}
		}

		// Token: 0x17000367 RID: 871
		// (get) Token: 0x060013B8 RID: 5048 RVA: 0x003241C9 File Offset: 0x003223C9
		// (set) Token: 0x060013B9 RID: 5049 RVA: 0x003241D1 File Offset: 0x003223D1
		public virtual EAlterIndexOption AlterIndexOption
		{
			get
			{
				return this._alterIndexOption;
			}
			set
			{
				this._alterIndexOption = value;
			}
		}

		// Token: 0x17000368 RID: 872
		// (get) Token: 0x060013BA RID: 5050 RVA: 0x003241DA File Offset: 0x003223DA
		// (set) Token: 0x060013BB RID: 5051 RVA: 0x003241E2 File Offset: 0x003223E2
		public virtual List<THiveKeyValueProperty> IndexProperties
		{
			get
			{
				return this._indexProperties;
			}
			set
			{
				this._indexProperties = value;
			}
		}

		// Token: 0x17000369 RID: 873
		// (get) Token: 0x060013BC RID: 5052 RVA: 0x003241EB File Offset: 0x003223EB
		// (set) Token: 0x060013BD RID: 5053 RVA: 0x003241F3 File Offset: 0x003223F3
		public virtual TPartitionExtensionClause PartitionSpec
		{
			get
			{
				return this._partitionSpec;
			}
			set
			{
				this._partitionSpec = value;
			}
		}

		// Token: 0x1700036A RID: 874
		// (get) Token: 0x060013BE RID: 5054 RVA: 0x003241FC File Offset: 0x003223FC
		// (set) Token: 0x060013BF RID: 5055 RVA: 0x00324204 File Offset: 0x00322404
		public virtual TObjectName IndexName
		{
			get
			{
				return this._indexName;
			}
			set
			{
				this._indexName = value;
			}
		}

		// Token: 0x060013C0 RID: 5056 RVA: 0x0032420D File Offset: 0x0032240D
		public override void init(object arg1)
		{
			this._indexName = (TObjectName)arg1;
			this._indexName.DbObjectType = EDbObjectType.index;
		}

		// Token: 0x060013C1 RID: 5057 RVA: 0x00324228 File Offset: 0x00322428
		public override void init(object arg1, object arg2)
		{
			this._alterIndexOption = (EAlterIndexOption)arg1;
			this._indexName = (TObjectName)arg2;
		}

		// Token: 0x060013C2 RID: 5058 RVA: 0x00324242 File Offset: 0x00322442
		public override void init(object arg1, object arg2, object arg3)
		{
			this._alterIndexOption = (EAlterIndexOption)arg1;
			this._indexName = (TObjectName)arg2;
			this._onIndexName = (TObjectName)arg3;
		}

		// Token: 0x060013C3 RID: 5059 RVA: 0x00324268 File Offset: 0x00322468
		public override void init(object arg1, object arg2, object arg3, object arg4)
		{
			this.init(arg1, arg2, arg3);
			EAlterIndexOption alterIndexOption = this._alterIndexOption;
			if (alterIndexOption != EAlterIndexOption.rebuild)
			{
				if (alterIndexOption == EAlterIndexOption.setProperties)
				{
					this._indexProperties = (List<THiveKeyValueProperty>)arg4;
					return;
				}
			}
			else
			{
				this._partitionSpec = (TPartitionExtensionClause)arg4;
			}
		}

		// Token: 0x060013C4 RID: 5060 RVA: 0x003242A8 File Offset: 0x003224A8
		public override void init(object arg1, object arg2, object arg3, object arg4, object arg5)
		{
			this.init(arg1, arg2, arg3, arg4);
			this._partitionSpec = (TPartitionExtensionClause)arg5;
		}

		// Token: 0x04001693 RID: 5779
		private TObjectName _indexName;

		// Token: 0x04001694 RID: 5780
		private TObjectName _onIndexName;

		// Token: 0x04001695 RID: 5781
		private EAlterIndexOption _alterIndexOption;

		// Token: 0x04001696 RID: 5782
		private List<THiveKeyValueProperty> _indexProperties;

		// Token: 0x04001697 RID: 5783
		private TPartitionExtensionClause _partitionSpec;
	}
}
